package IA.GA.util;
import org.jgap.IChromosome;

import IA.GA.editorial.domain.SuperGeneTraductor;

//Los getters que terminan en GEN extraen el atributo requerido del cromosoma un valor entre 0-valormaximoDelGen
//Los otros devuelven un String dado el codigo que tenga el gen.

public class Helper {
	public static final Helper instance = new Helper();
	
//	private final CustomMap<Integer,String> Personas = new CustomMap<Integer, String>().put(0, "Olga").put(1, "Silvia").put(2, "Juan");
	private final CustomMap<Integer,String> TipoLibro = new CustomMap<Integer, String>().put(0, "Ensayo").put(1, "Ciencia　Ficcion").put(2, "Otro");
	private final CustomMap<Integer, String> Idioma = new CustomMap<Integer, String>().put(0, "Frances").put(1, "Ruso").put(2, "Otro");
	private final CustomMap<Integer,String> Longitud = new CustomMap<Integer, String>().put(0, "Breve").put(1, "Intermedio").put(2, "Mas extenso");
	private final CustomMap<Integer,String> CantPaginas = new CustomMap<Integer, String>().put(0, "290").put(1, "Otro");
	
//	public Integer getPersonaGen(IChromosome subject){
//		return (Integer) subject.getGene(0).getAllele();
//	}
	
	public SuperGeneTraductor getGeneOlga(IChromosome chrome){
		return (SuperGeneTraductor) chrome.getGene(0);
	}
	
	public SuperGeneTraductor getGeneSilvia(IChromosome chrome){
		return (SuperGeneTraductor) chrome.getGene(1);
	}
	
	public SuperGeneTraductor getGeneJuan(IChromosome chrome){
		return (SuperGeneTraductor) chrome.getGene(2);
	}
//
//	public Integer getTipoLibroGen(IChromosome subject){
//		return (Integer) subject.getGene(1).getAllele();
//	}
//	
//	public Integer getIdiomaGen(IChromosome subject){
//		return (Integer) subject.getGene(2).getAllele();
//	}
//	
//	public Integer getLongitudLibroGen(IChromosome subject){
//		return (Integer) subject.getGene(3).getAllele();
//	}
//	
//	public Integer getCantPaginasGen(IChromosome subject){
//		return (Integer) subject.getGene(4).getAllele();
//	}
//	
//	public String getPersona(Integer cod_nombre){
//		return this.Personas.get(cod_nombre);
//	}
	
	public String getTipoDeLibro(Integer codigo){
		return this.TipoLibro.get(codigo);
	}
	
	public String getIdioma(Integer codigo){
		return this.Idioma.get(codigo);
	}
	
	
	public String getLongitudLibro(Integer codigo){
		return this.Longitud.get(codigo);
	}
	
	public String getCantPaginas(Integer codigo){
		return this.CantPaginas.get(codigo);
	}

}
